// 1.配置axios的基地址
axios.defaults.baseURL = 'https://hmajax.itheima.net'
// 请求拦截器
axios.interceptors.request.use((config) => {
    const token = localStorage.getItem('token')
    // 接口层面就是这样设计的，登录和注册是不需要token的
    if (token) {
        config.headers.Authorization = token
    }
    return config
}, (err) => {
    return Promise.reject(err)
})
// 响应拦截器
axios.interceptors.response.use(({ data }) => {
    // 剥离axios自带的那层数据
    return data
}, (err) => {
    if (err.response.status === 401) {
        // token失效
        localStorage.removeItem('token')
        showToast('登录失效，请重新登陆')
        setTimeout(() => {
            location.href = './login.html'
        }, 1000)
    }
    return Promise.reject(err)
})
// 2.封装一个公共的吐司提示框
function showToast(message) {
    // 1.获取页面的弹层模板
    const toast = document.querySelector('.toast')
    // 2.通过模板实例化一个弹层
    const registerToast = new bootstrap.Toast(toast)
    // 3.修改弹层内的提示文字
    toast.querySelector('.toast-body').innerText = message
    // 4.展示弹层
    registerToast.show()
}

function checkLogin() {
    // token对于前端的作用：
    // 可以限制哪些页面被用户访问，哪些不被访问
    const token = localStorage.getItem('token')
    if (!token) {
        // 提示当前暂未登录
        showToast('当前暂未登录')
        setTimeout(() => {
            location.href = './login.html'
        }, 1000)
    }
}

function renderUserName() {
    const username = localStorage.getItem('username')
    document.querySelector('.username').innerHTML = username
}

function logout() {
    // 退出登录
    document.querySelector('#logout').addEventListener('click', function () {
        localStorage.removeItem('token')
        showToast('退出成功')
        setTimeout(() => {
            location.href = './login.html'
        }, 1000)
    })
}
